/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import org.cip.esymons.colegiatura.bc.CentroTrabajoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoCentroTrabajoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.CentroTrabajo;
import org.cip.esymons.general.be.ColegiadoCentroTrabajo;

/**
 *
 * @author ADMINISTRADOR
 */
public class centroTrabajoController {

    CentroTrabajoDelegate delegadoCentroTrabajo;
    CentroTrabajo centroTrabajo;
    ColegiadoCentroTrabajoDelegate delegadoColCentroTrabajo;
    ColegiadoCentroTrabajo colCentroTrabajo;
    Colegiado colegiado;
    ColegiadoDelegate delegadoColegiado;

    List<CentroTrabajo> listaCentroTrabajos;

    public centroTrabajoController() {

        delegadoCentroTrabajo = new CentroTrabajoDelegate();
        delegadoColCentroTrabajo = new ColegiadoCentroTrabajoDelegate();
        delegadoColegiado = new ColegiadoDelegate();

        centroTrabajo = new CentroTrabajo();
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        colegiado = new Colegiado();

        listaCentroTrabajos = new ArrayList<CentroTrabajo>();
        
    }

    public List<CentroTrabajo> getListaCentroTrabajos() {
        return listaCentroTrabajos;
    }

    public void setListaCentroTrabajos(List<CentroTrabajo> listaCentroTrabajos) {
        this.listaCentroTrabajos = listaCentroTrabajos;
    }

    public CentroTrabajo getCentroTrabajo() {
        return centroTrabajo;
    }

    public void setCentroTrabajo(CentroTrabajo centroTrabajo) {
        this.centroTrabajo = centroTrabajo;
    }

    public ColegiadoCentroTrabajo getColCentroTrabajo() {
        return colCentroTrabajo;
    }

    public void setColCentroTrabajo(ColegiadoCentroTrabajo colCentroTrabajo) {
        this.colCentroTrabajo = colCentroTrabajo;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public CentroTrabajoDelegate getDelegadoCentroTrabajo() {
        return delegadoCentroTrabajo;
    }

    public void setDelegadoCentroTrabajo(CentroTrabajoDelegate delegadoCentroTrabajo) {
        this.delegadoCentroTrabajo = delegadoCentroTrabajo;
    }

    public ColegiadoCentroTrabajoDelegate getDelegadoColCentroTrabajo() {
        return delegadoColCentroTrabajo;
    }

    public void setDelegadoColCentroTrabajo(ColegiadoCentroTrabajoDelegate delegadoColCentroTrabajo) {
        this.delegadoColCentroTrabajo = delegadoColCentroTrabajo;
    }

    public ColegiadoDelegate getDelegadoColegiado() {
        return delegadoColegiado;
    }

    public void setDelegadoColegiado(ColegiadoDelegate delegadoColegiado) {
        this.delegadoColegiado = delegadoColegiado;
    }

    public CentroTrabajo buscaPorCodigo(Integer codigo){
        return delegadoCentroTrabajo.find(codigo);
    }

    public String guardar(){

        delegadoCentroTrabajo.create(centroTrabajo);
        centroTrabajo = new CentroTrabajo();
        mostrarMensaje("INFO: ", "Cargo actualizado satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return null;
    }

    public String editar(){

        delegadoCentroTrabajo.edit(centroTrabajo);
        centroTrabajo = new CentroTrabajo();
        mostrarMensaje("INFO: ", "Cargo actualizado satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return "listar";
    }

    public String cancelar(){
        centroTrabajo = new CentroTrabajo();
        return "listar";
    }
    public String remover(){

        delegadoCentroTrabajo.remove(centroTrabajo);
        centroTrabajo = new CentroTrabajo();
        return null;
    }

    public String nuevo(){

        centroTrabajo = new CentroTrabajo();
        return "nuevo";
    }

    public List<CentroTrabajo> getListaCentroTrabajo(){

        listaCentroTrabajos = new ArrayList<CentroTrabajo>();
        return listaCentroTrabajos = delegadoCentroTrabajo.findAll();
    }

    public SelectItem[] getSelectListaItemCentroTrabajo(){

      try{
        System.out.println("Ingreso 1");
        SelectItem[] selects = null;
        List<CentroTrabajo> listaCentro = delegadoCentroTrabajo.findAll();
        selects = new SelectItem[listaCentro.size()];
        int cont = 0;
        for(CentroTrabajo centro : listaCentro){

            SelectItem item = new SelectItem(centro, centro.getCtrNombre());
            selects[cont] = item;
            cont++;
        }
        return selects;
      }catch(Exception e){
            System.out.println("Ingreso Error");
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen centros");
            selects[0] = item;
            return selects;
      }

    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }
}
